// Copyright (c) 2016, SolidCP
// SolidCP is distributed under the Creative Commons Share-alike license
// 
// SolidCP is a fork of WebsitePanel:
// Copyright (c) 2015, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must  retain  the  above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form  must  reproduce the  above  copyright  notice,
//   this list of conditions  and  the  following  disclaimer in  the documentation
//   and/or other materials provided with the distribution.
//
// - Neither  the  name  of  the  Outercurve Foundation  nor   the   names  of  its
//   contributors may be used to endorse or  promote  products  derived  from  this
//   software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED TO, THE IMPLIED
// WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR  PURPOSE  ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER  CAUSED AND ON
// ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
namespace SolidCP.Providers.Statistics
{
    using System.Diagnostics;
    using System.Web.Services;
    using System.ComponentModel;
    using System.Web.Services.Protocols;
    using System;
    using System.Xml.Serialization;


    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name = "ServerAdminSoap", Namespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx")]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(object[]))]
    public partial class ServerAdmin : System.Web.Services.Protocols.SoapHttpClientProtocol
    {

        private System.Threading.SendOrPostCallback GetGlobalDefaultsOperationCompleted;

        private System.Threading.SendOrPostCallback GetServersOperationCompleted;

        private System.Threading.SendOrPostCallback PingServerOperationCompleted;

        private System.Threading.SendOrPostCallback AddServerOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteServerOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateServerOperationCompleted;

        /// <remarks/>
        public ServerAdmin()
        {
            this.Url = "http://127.0.0.1:9999/services/serveradmin.asmx";
        }

        /// <remarks/>
        public event GetGlobalDefaultsCompletedEventHandler GetGlobalDefaultsCompleted;

        /// <remarks/>
        public event GetServersCompletedEventHandler GetServersCompleted;

        /// <remarks/>
        public event PingServerCompletedEventHandler PingServerCompleted;

        /// <remarks/>
        public event AddServerCompletedEventHandler AddServerCompleted;

        /// <remarks/>
        public event DeleteServerCompletedEventHandler DeleteServerCompleted;

        /// <remarks/>
        public event UpdateServerCompletedEventHandler UpdateServerCompleted;

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/ServerAdmin.asmx/GetGlobalDefaults", RequestNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GlobalDefaultsResult GetGlobalDefaults(string authUserName, string authPassword)
        {
            object[] results = this.Invoke("GetGlobalDefaults", new object[] {
                        authUserName,
                        authPassword});
            return ((GlobalDefaultsResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetGlobalDefaults(string authUserName, string authPassword, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetGlobalDefaults", new object[] {
                        authUserName,
                        authPassword}, callback, asyncState);
        }

        /// <remarks/>
        public GlobalDefaultsResult EndGetGlobalDefaults(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GlobalDefaultsResult)(results[0]));
        }

        /// <remarks/>
        public void GetGlobalDefaultsAsync(string authUserName, string authPassword)
        {
            this.GetGlobalDefaultsAsync(authUserName, authPassword, null);
        }

        /// <remarks/>
        public void GetGlobalDefaultsAsync(string authUserName, string authPassword, object userState)
        {
            if ((this.GetGlobalDefaultsOperationCompleted == null))
            {
                this.GetGlobalDefaultsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetGlobalDefaultsOperationCompleted);
            }
            this.InvokeAsync("GetGlobalDefaults", new object[] {
                        authUserName,
                        authPassword}, this.GetGlobalDefaultsOperationCompleted, userState);
        }

        private void OnGetGlobalDefaultsOperationCompleted(object arg)
        {
            if ((this.GetGlobalDefaultsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetGlobalDefaultsCompleted(this, new GetGlobalDefaultsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/ServerAdmin.asmx/GetServers", RequestNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public ServerInfoArrayResult GetServers(string authUserName, string authPassword)
        {
            object[] results = this.Invoke("GetServers", new object[] {
                        authUserName,
                        authPassword});
            return ((ServerInfoArrayResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetServers(string authUserName, string authPassword, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetServers", new object[] {
                        authUserName,
                        authPassword}, callback, asyncState);
        }

        /// <remarks/>
        public ServerInfoArrayResult EndGetServers(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((ServerInfoArrayResult)(results[0]));
        }

        /// <remarks/>
        public void GetServersAsync(string authUserName, string authPassword)
        {
            this.GetServersAsync(authUserName, authPassword, null);
        }

        /// <remarks/>
        public void GetServersAsync(string authUserName, string authPassword, object userState)
        {
            if ((this.GetServersOperationCompleted == null))
            {
                this.GetServersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetServersOperationCompleted);
            }
            this.InvokeAsync("GetServers", new object[] {
                        authUserName,
                        authPassword}, this.GetServersOperationCompleted, userState);
        }

        private void OnGetServersOperationCompleted(object arg)
        {
            if ((this.GetServersCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetServersCompleted(this, new GetServersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/ServerAdmin.asmx/PingServer", RequestNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult PingServer(string authUserName, string authPassword, int ServerID)
        {
            object[] results = this.Invoke("PingServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID});
            return ((GenericResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginPingServer(string authUserName, string authPassword, int ServerID, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("PingServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult EndPingServer(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult)(results[0]));
        }

        /// <remarks/>
        public void PingServerAsync(string authUserName, string authPassword, int ServerID)
        {
            this.PingServerAsync(authUserName, authPassword, ServerID, null);
        }

        /// <remarks/>
        public void PingServerAsync(string authUserName, string authPassword, int ServerID, object userState)
        {
            if ((this.PingServerOperationCompleted == null))
            {
                this.PingServerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnPingServerOperationCompleted);
            }
            this.InvokeAsync("PingServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID}, this.PingServerOperationCompleted, userState);
        }

        private void OnPingServerOperationCompleted(object arg)
        {
            if ((this.PingServerCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.PingServerCompleted(this, new PingServerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/ServerAdmin.asmx/AddServer", RequestNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult AddServer(string authUserName, string authPassword, int ServerID, string ServerIP, string ServerName)
        {
            object[] results = this.Invoke("AddServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID,
                        ServerIP,
                        ServerName});
            return ((GenericResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddServer(string authUserName, string authPassword, int ServerID, string ServerIP, string ServerName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AddServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID,
                        ServerIP,
                        ServerName}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult EndAddServer(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult)(results[0]));
        }

        /// <remarks/>
        public void AddServerAsync(string authUserName, string authPassword, int ServerID, string ServerIP, string ServerName)
        {
            this.AddServerAsync(authUserName, authPassword, ServerID, ServerIP, ServerName, null);
        }

        /// <remarks/>
        public void AddServerAsync(string authUserName, string authPassword, int ServerID, string ServerIP, string ServerName, object userState)
        {
            if ((this.AddServerOperationCompleted == null))
            {
                this.AddServerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddServerOperationCompleted);
            }
            this.InvokeAsync("AddServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID,
                        ServerIP,
                        ServerName}, this.AddServerOperationCompleted, userState);
        }

        private void OnAddServerOperationCompleted(object arg)
        {
            if ((this.AddServerCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddServerCompleted(this, new AddServerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/ServerAdmin.asmx/DeleteServer", RequestNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult DeleteServer(string authUserName, string authPassword, int ServerID)
        {
            object[] results = this.Invoke("DeleteServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID});
            return ((GenericResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteServer(string authUserName, string authPassword, int ServerID, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult EndDeleteServer(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult)(results[0]));
        }

        /// <remarks/>
        public void DeleteServerAsync(string authUserName, string authPassword, int ServerID)
        {
            this.DeleteServerAsync(authUserName, authPassword, ServerID, null);
        }

        /// <remarks/>
        public void DeleteServerAsync(string authUserName, string authPassword, int ServerID, object userState)
        {
            if ((this.DeleteServerOperationCompleted == null))
            {
                this.DeleteServerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteServerOperationCompleted);
            }
            this.InvokeAsync("DeleteServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID}, this.DeleteServerOperationCompleted, userState);
        }

        private void OnDeleteServerOperationCompleted(object arg)
        {
            if ((this.DeleteServerCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteServerCompleted(this, new DeleteServerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/ServerAdmin.asmx/UpdateServer", RequestNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult UpdateServer(string authUserName, string authPassword, int ServerID, string ServerIP, string ServerName)
        {
            object[] results = this.Invoke("UpdateServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID,
                        ServerIP,
                        ServerName});
            return ((GenericResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateServer(string authUserName, string authPassword, int ServerID, string ServerIP, string ServerName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID,
                        ServerIP,
                        ServerName}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult EndUpdateServer(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult)(results[0]));
        }

        /// <remarks/>
        public void UpdateServerAsync(string authUserName, string authPassword, int ServerID, string ServerIP, string ServerName)
        {
            this.UpdateServerAsync(authUserName, authPassword, ServerID, ServerIP, ServerName, null);
        }

        /// <remarks/>
        public void UpdateServerAsync(string authUserName, string authPassword, int ServerID, string ServerIP, string ServerName, object userState)
        {
            if ((this.UpdateServerOperationCompleted == null))
            {
                this.UpdateServerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateServerOperationCompleted);
            }
            this.InvokeAsync("UpdateServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID,
                        ServerIP,
                        ServerName}, this.UpdateServerOperationCompleted, userState);
        }

        private void OnUpdateServerOperationCompleted(object arg)
        {
            if ((this.UpdateServerCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateServerCompleted(this, new UpdateServerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        public new void CancelAsync(object userState)
        {
            base.CancelAsync(userState);
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx")]
    public partial class GlobalDefaultsResult
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;

        /// <remarks/>
        public string SmarterStatsAdmin;

        /// <remarks/>
        public string SmarterStatsPassword;

        /// <remarks/>
        public int DefaultMaxMonthsHistory;

        /// <remarks/>
        public int DefaultMaxSpaceMegs;

        /// <remarks/>
        public string DefaultSMTPServer;

        /// <remarks/>
        public int DefaultCustomReportItemLimit;

        /// <remarks/>
        public int DefaultStandardReportDayRange;

        /// <remarks/>
        public int DefaultCustomReportDayRange;

        /// <remarks/>
        public string FromEmailAddress;

        /// <remarks/>
        public object[] PageExtensions;

        /// <remarks/>
        public object[] DynamicPageExtensions;

        /// <remarks/>
        public object[] DownloadExtensions;

        /// <remarks/>
        public object[] DocumentExtensions;

        /// <remarks/>
        public object[] HackAttemptExtensions;

        /// <remarks/>
        public object[] ImageExtensions;

        /// <remarks/>
        public int StandardFontSize;

        /// <remarks/>
        public int DefaultLogFileDays;

        /// <remarks/>
        public int DefaultSmarterLogFileMonths;

        /// <remarks/>
        public int DefaultNumberOfIPToResolve;

        /// <remarks/>
        public int DefaultNumberOfMiliSecondsToTryResolveIP;

        /// <remarks/>
        public int MaxThreadsToResolveAtOnce;

        /// <remarks/>
        public int DefaultLengthToKeepDNSCache;

        /// <remarks/>
        public int EmailReportsSleepTime;

        /// <remarks/>
        public int EmailReportsSendInterval;

        /// <remarks/>
        public bool EmailReportsSendErrorEmails;

        /// <remarks/>
        public bool EmailReportsSendOverTimeEmail;

        /// <remarks/>
        public string EmailReportsTotalTimeToProcess;

        /// <remarks/>
        public int EmailReportsThreadsToRunAtOnce;

        /// <remarks/>
        public int EmailReportsMaxRowsToReturn;

        /// <remarks/>
        public string ProblemEmailAddress;

        /// <remarks/>
        public string ProblemSMTPServer;

        /// <remarks/>
        public string RowOptionsList;

        /// <remarks/>
        public string LicenseKey;

        /// <remarks/>
        public string ActivationKey;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx")]
    public partial class GenericResult
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx")]
    public partial class ServerInfo
    {

        /// <remarks/>
        public int ServerID;

        /// <remarks/>
        public string IP;

        /// <remarks/>
        public string Name;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/ServerAdmin.asmx")]
    public partial class ServerInfoArrayResult
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable = false)]
        public ServerInfo[] Servers;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetGlobalDefaultsCompletedEventHandler(object sender, GetGlobalDefaultsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetGlobalDefaultsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetGlobalDefaultsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GlobalDefaultsResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GlobalDefaultsResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetServersCompletedEventHandler(object sender, GetServersCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetServersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetServersCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public ServerInfoArrayResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((ServerInfoArrayResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void PingServerCompletedEventHandler(object sender, PingServerCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class PingServerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal PingServerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddServerCompletedEventHandler(object sender, AddServerCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddServerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddServerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteServerCompletedEventHandler(object sender, DeleteServerCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteServerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteServerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateServerCompletedEventHandler(object sender, UpdateServerCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateServerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal UpdateServerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name = "SiteAdminSoap", Namespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx")]
    public partial class SiteAdmin : System.Web.Services.Protocols.SoapHttpClientProtocol
    {

        private System.Threading.SendOrPostCallback AddSiteOperationCompleted;

        private System.Threading.SendOrPostCallback AddSiteWithFTPOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateSiteOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteSiteOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteSiteByNameOperationCompleted;

        private System.Threading.SendOrPostCallback GetAllSitesOperationCompleted;

        private System.Threading.SendOrPostCallback GetSitesForServerOperationCompleted;

        private System.Threading.SendOrPostCallback GetSiteOperationCompleted;

        private System.Threading.SendOrPostCallback GetSiteStatusOperationCompleted;

        private System.Threading.SendOrPostCallback MoveSiteOperationCompleted;

        /// <remarks/>
        public SiteAdmin()
        {
            this.Url = "http://127.0.0.1:9999/services/siteadmin.asmx";
        }

        /// <remarks/>
        public event AddSiteCompletedEventHandler AddSiteCompleted;

        /// <remarks/>
        public event AddSiteWithFTPCompletedEventHandler AddSiteWithFTPCompleted;

        /// <remarks/>
        public event UpdateSiteCompletedEventHandler UpdateSiteCompleted;

        /// <remarks/>
        public event DeleteSiteCompletedEventHandler DeleteSiteCompleted;

        /// <remarks/>
        public event DeleteSiteByNameCompletedEventHandler DeleteSiteByNameCompleted;

        /// <remarks/>
        public event GetAllSitesCompletedEventHandler GetAllSitesCompleted;

        /// <remarks/>
        public event GetSitesForServerCompletedEventHandler GetSitesForServerCompleted;

        /// <remarks/>
        public event GetSiteCompletedEventHandler GetSiteCompleted;

        /// <remarks/>
        public event GetSiteStatusCompletedEventHandler GetSiteStatusCompleted;

        /// <remarks/>
        public event MoveSiteCompletedEventHandler MoveSiteCompleted;

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/AddSite", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult1 AddSite(
                    string authUserName,
                    string authPassword,
                    string soUserName,
                    string soPassword,
                    string soFirstName,
                    string soLastName,
                    int ServerID,
                    int SiteID,
                    string DomainName,
                    string LogDirectory,
                    string LogFormat,
                    string LogWildcard,
                    int LogDaysBeforeDelete,
                    string SmarterLogDirectory,
                    int SmarterLogMonthsBeforeDelete,
                    string ExportPath,
                    string ExportPathURL,
                    int TimeZoneID)
        {
            object[] results = this.Invoke("AddSite", new object[] {
                        authUserName,
                        authPassword,
                        soUserName,
                        soPassword,
                        soFirstName,
                        soLastName,
                        ServerID,
                        SiteID,
                        DomainName,
                        LogDirectory,
                        LogFormat,
                        LogWildcard,
                        LogDaysBeforeDelete,
                        SmarterLogDirectory,
                        SmarterLogMonthsBeforeDelete,
                        ExportPath,
                        ExportPathURL,
                        TimeZoneID});
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddSite(
                    string authUserName,
                    string authPassword,
                    string soUserName,
                    string soPassword,
                    string soFirstName,
                    string soLastName,
                    int ServerID,
                    int SiteID,
                    string DomainName,
                    string LogDirectory,
                    string LogFormat,
                    string LogWildcard,
                    int LogDaysBeforeDelete,
                    string SmarterLogDirectory,
                    int SmarterLogMonthsBeforeDelete,
                    string ExportPath,
                    string ExportPathURL,
                    int TimeZoneID,
                    System.AsyncCallback callback,
                    object asyncState)
        {
            return this.BeginInvoke("AddSite", new object[] {
                        authUserName,
                        authPassword,
                        soUserName,
                        soPassword,
                        soFirstName,
                        soLastName,
                        ServerID,
                        SiteID,
                        DomainName,
                        LogDirectory,
                        LogFormat,
                        LogWildcard,
                        LogDaysBeforeDelete,
                        SmarterLogDirectory,
                        SmarterLogMonthsBeforeDelete,
                        ExportPath,
                        ExportPathURL,
                        TimeZoneID}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult1 EndAddSite(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public void AddSiteAsync(
                    string authUserName,
                    string authPassword,
                    string soUserName,
                    string soPassword,
                    string soFirstName,
                    string soLastName,
                    int ServerID,
                    int SiteID,
                    string DomainName,
                    string LogDirectory,
                    string LogFormat,
                    string LogWildcard,
                    int LogDaysBeforeDelete,
                    string SmarterLogDirectory,
                    int SmarterLogMonthsBeforeDelete,
                    string ExportPath,
                    string ExportPathURL,
                    int TimeZoneID)
        {
            this.AddSiteAsync(authUserName, authPassword, soUserName, soPassword, soFirstName, soLastName, ServerID, SiteID, DomainName, LogDirectory, LogFormat, LogWildcard, LogDaysBeforeDelete, SmarterLogDirectory, SmarterLogMonthsBeforeDelete, ExportPath, ExportPathURL, TimeZoneID, null);
        }

        /// <remarks/>
        public void AddSiteAsync(
                    string authUserName,
                    string authPassword,
                    string soUserName,
                    string soPassword,
                    string soFirstName,
                    string soLastName,
                    int ServerID,
                    int SiteID,
                    string DomainName,
                    string LogDirectory,
                    string LogFormat,
                    string LogWildcard,
                    int LogDaysBeforeDelete,
                    string SmarterLogDirectory,
                    int SmarterLogMonthsBeforeDelete,
                    string ExportPath,
                    string ExportPathURL,
                    int TimeZoneID,
                    object userState)
        {
            if ((this.AddSiteOperationCompleted == null))
            {
                this.AddSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddSiteOperationCompleted);
            }
            this.InvokeAsync("AddSite", new object[] {
                        authUserName,
                        authPassword,
                        soUserName,
                        soPassword,
                        soFirstName,
                        soLastName,
                        ServerID,
                        SiteID,
                        DomainName,
                        LogDirectory,
                        LogFormat,
                        LogWildcard,
                        LogDaysBeforeDelete,
                        SmarterLogDirectory,
                        SmarterLogMonthsBeforeDelete,
                        ExportPath,
                        ExportPathURL,
                        TimeZoneID}, this.AddSiteOperationCompleted, userState);
        }

        private void OnAddSiteOperationCompleted(object arg)
        {
            if ((this.AddSiteCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddSiteCompleted(this, new AddSiteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/AddSiteWithFTP", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult1 AddSiteWithFTP(
                    string authUserName,
                    string authPassword,
                    string soUserName,
                    string soPassword,
                    string soFirstName,
                    string soLastName,
                    int ServerID,
                    int SiteID,
                    string DomainName,
                    string LogFormat,
                    string LogWildcard,
                    int LogDaysBeforeDelete,
                    string SmarterLogDirectory,
                    int SmarterLogMonthsBeforeDelete,
                    string ExportPath,
                    string ExportPathURL,
                    int TimeZoneID,
                    string Directory,
                    string ProxyType,
                    string ProxyAddress,
                    int ProxyPort,
                    string ProxyUserName,
                    string ProxyPassword,
                    string Server,
                    int Port,
                    string Username,
                    string Password,
                    int IntervalHours)
        {
            object[] results = this.Invoke("AddSiteWithFTP", new object[] {
                        authUserName,
                        authPassword,
                        soUserName,
                        soPassword,
                        soFirstName,
                        soLastName,
                        ServerID,
                        SiteID,
                        DomainName,
                        LogFormat,
                        LogWildcard,
                        LogDaysBeforeDelete,
                        SmarterLogDirectory,
                        SmarterLogMonthsBeforeDelete,
                        ExportPath,
                        ExportPathURL,
                        TimeZoneID,
                        Directory,
                        ProxyType,
                        ProxyAddress,
                        ProxyPort,
                        ProxyUserName,
                        ProxyPassword,
                        Server,
                        Port,
                        Username,
                        Password,
                        IntervalHours});
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddSiteWithFTP(
                    string authUserName,
                    string authPassword,
                    string soUserName,
                    string soPassword,
                    string soFirstName,
                    string soLastName,
                    int ServerID,
                    int SiteID,
                    string DomainName,
                    string LogFormat,
                    string LogWildcard,
                    int LogDaysBeforeDelete,
                    string SmarterLogDirectory,
                    int SmarterLogMonthsBeforeDelete,
                    string ExportPath,
                    string ExportPathURL,
                    int TimeZoneID,
                    string Directory,
                    string ProxyType,
                    string ProxyAddress,
                    int ProxyPort,
                    string ProxyUserName,
                    string ProxyPassword,
                    string Server,
                    int Port,
                    string Username,
                    string Password,
                    int IntervalHours,
                    System.AsyncCallback callback,
                    object asyncState)
        {
            return this.BeginInvoke("AddSiteWithFTP", new object[] {
                        authUserName,
                        authPassword,
                        soUserName,
                        soPassword,
                        soFirstName,
                        soLastName,
                        ServerID,
                        SiteID,
                        DomainName,
                        LogFormat,
                        LogWildcard,
                        LogDaysBeforeDelete,
                        SmarterLogDirectory,
                        SmarterLogMonthsBeforeDelete,
                        ExportPath,
                        ExportPathURL,
                        TimeZoneID,
                        Directory,
                        ProxyType,
                        ProxyAddress,
                        ProxyPort,
                        ProxyUserName,
                        ProxyPassword,
                        Server,
                        Port,
                        Username,
                        Password,
                        IntervalHours}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult1 EndAddSiteWithFTP(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public void AddSiteWithFTPAsync(
                    string authUserName,
                    string authPassword,
                    string soUserName,
                    string soPassword,
                    string soFirstName,
                    string soLastName,
                    int ServerID,
                    int SiteID,
                    string DomainName,
                    string LogFormat,
                    string LogWildcard,
                    int LogDaysBeforeDelete,
                    string SmarterLogDirectory,
                    int SmarterLogMonthsBeforeDelete,
                    string ExportPath,
                    string ExportPathURL,
                    int TimeZoneID,
                    string Directory,
                    string ProxyType,
                    string ProxyAddress,
                    int ProxyPort,
                    string ProxyUserName,
                    string ProxyPassword,
                    string Server,
                    int Port,
                    string Username,
                    string Password,
                    int IntervalHours)
        {
            this.AddSiteWithFTPAsync(authUserName, authPassword, soUserName, soPassword, soFirstName, soLastName, ServerID, SiteID, DomainName, LogFormat, LogWildcard, LogDaysBeforeDelete, SmarterLogDirectory, SmarterLogMonthsBeforeDelete, ExportPath, ExportPathURL, TimeZoneID, Directory, ProxyType, ProxyAddress, ProxyPort, ProxyUserName, ProxyPassword, Server, Port, Username, Password, IntervalHours, null);
        }

        /// <remarks/>
        public void AddSiteWithFTPAsync(
                    string authUserName,
                    string authPassword,
                    string soUserName,
                    string soPassword,
                    string soFirstName,
                    string soLastName,
                    int ServerID,
                    int SiteID,
                    string DomainName,
                    string LogFormat,
                    string LogWildcard,
                    int LogDaysBeforeDelete,
                    string SmarterLogDirectory,
                    int SmarterLogMonthsBeforeDelete,
                    string ExportPath,
                    string ExportPathURL,
                    int TimeZoneID,
                    string Directory,
                    string ProxyType,
                    string ProxyAddress,
                    int ProxyPort,
                    string ProxyUserName,
                    string ProxyPassword,
                    string Server,
                    int Port,
                    string Username,
                    string Password,
                    int IntervalHours,
                    object userState)
        {
            if ((this.AddSiteWithFTPOperationCompleted == null))
            {
                this.AddSiteWithFTPOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddSiteWithFTPOperationCompleted);
            }
            this.InvokeAsync("AddSiteWithFTP", new object[] {
                        authUserName,
                        authPassword,
                        soUserName,
                        soPassword,
                        soFirstName,
                        soLastName,
                        ServerID,
                        SiteID,
                        DomainName,
                        LogFormat,
                        LogWildcard,
                        LogDaysBeforeDelete,
                        SmarterLogDirectory,
                        SmarterLogMonthsBeforeDelete,
                        ExportPath,
                        ExportPathURL,
                        TimeZoneID,
                        Directory,
                        ProxyType,
                        ProxyAddress,
                        ProxyPort,
                        ProxyUserName,
                        ProxyPassword,
                        Server,
                        Port,
                        Username,
                        Password,
                        IntervalHours}, this.AddSiteWithFTPOperationCompleted, userState);
        }

        private void OnAddSiteWithFTPOperationCompleted(object arg)
        {
            if ((this.AddSiteWithFTPCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddSiteWithFTPCompleted(this, new AddSiteWithFTPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/UpdateSite", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult1 UpdateSite(string authUserName, string authPassword, int SiteID, string DomainName, string LogDirectory, string LogFormat, string LogWildcard, int LogDaysBeforeDelete, string SmarterLogDirectory, int SmarterLogMonthsBeforeDelete, string ExportPath, string ExportPathURL, int TimeZoneID)
        {
            object[] results = this.Invoke("UpdateSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        DomainName,
                        LogDirectory,
                        LogFormat,
                        LogWildcard,
                        LogDaysBeforeDelete,
                        SmarterLogDirectory,
                        SmarterLogMonthsBeforeDelete,
                        ExportPath,
                        ExportPathURL,
                        TimeZoneID});
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateSite(string authUserName, string authPassword, int SiteID, string DomainName, string LogDirectory, string LogFormat, string LogWildcard, int LogDaysBeforeDelete, string SmarterLogDirectory, int SmarterLogMonthsBeforeDelete, string ExportPath, string ExportPathURL, int TimeZoneID, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        DomainName,
                        LogDirectory,
                        LogFormat,
                        LogWildcard,
                        LogDaysBeforeDelete,
                        SmarterLogDirectory,
                        SmarterLogMonthsBeforeDelete,
                        ExportPath,
                        ExportPathURL,
                        TimeZoneID}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult1 EndUpdateSite(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public void UpdateSiteAsync(string authUserName, string authPassword, int SiteID, string DomainName, string LogDirectory, string LogFormat, string LogWildcard, int LogDaysBeforeDelete, string SmarterLogDirectory, int SmarterLogMonthsBeforeDelete, string ExportPath, string ExportPathURL, int TimeZoneID)
        {
            this.UpdateSiteAsync(authUserName, authPassword, SiteID, DomainName, LogDirectory, LogFormat, LogWildcard, LogDaysBeforeDelete, SmarterLogDirectory, SmarterLogMonthsBeforeDelete, ExportPath, ExportPathURL, TimeZoneID, null);
        }

        /// <remarks/>
        public void UpdateSiteAsync(string authUserName, string authPassword, int SiteID, string DomainName, string LogDirectory, string LogFormat, string LogWildcard, int LogDaysBeforeDelete, string SmarterLogDirectory, int SmarterLogMonthsBeforeDelete, string ExportPath, string ExportPathURL, int TimeZoneID, object userState)
        {
            if ((this.UpdateSiteOperationCompleted == null))
            {
                this.UpdateSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateSiteOperationCompleted);
            }
            this.InvokeAsync("UpdateSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        DomainName,
                        LogDirectory,
                        LogFormat,
                        LogWildcard,
                        LogDaysBeforeDelete,
                        SmarterLogDirectory,
                        SmarterLogMonthsBeforeDelete,
                        ExportPath,
                        ExportPathURL,
                        TimeZoneID}, this.UpdateSiteOperationCompleted, userState);
        }

        private void OnUpdateSiteOperationCompleted(object arg)
        {
            if ((this.UpdateSiteCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateSiteCompleted(this, new UpdateSiteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/DeleteSite", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult1 DeleteSite(string authUserName, string authPassword, int SiteID, bool DeleteFiles)
        {
            object[] results = this.Invoke("DeleteSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        DeleteFiles});
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteSite(string authUserName, string authPassword, int SiteID, bool DeleteFiles, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        DeleteFiles}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult1 EndDeleteSite(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public void DeleteSiteAsync(string authUserName, string authPassword, int SiteID, bool DeleteFiles)
        {
            this.DeleteSiteAsync(authUserName, authPassword, SiteID, DeleteFiles, null);
        }

        /// <remarks/>
        public void DeleteSiteAsync(string authUserName, string authPassword, int SiteID, bool DeleteFiles, object userState)
        {
            if ((this.DeleteSiteOperationCompleted == null))
            {
                this.DeleteSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteSiteOperationCompleted);
            }
            this.InvokeAsync("DeleteSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        DeleteFiles}, this.DeleteSiteOperationCompleted, userState);
        }

        private void OnDeleteSiteOperationCompleted(object arg)
        {
            if ((this.DeleteSiteCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteSiteCompleted(this, new DeleteSiteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/DeleteSiteByName", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult1 DeleteSiteByName(string authUserName, string authPassword, string SiteName, bool DeleteFiles)
        {
            object[] results = this.Invoke("DeleteSiteByName", new object[] {
                        authUserName,
                        authPassword,
                        SiteName,
                        DeleteFiles});
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteSiteByName(string authUserName, string authPassword, string SiteName, bool DeleteFiles, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteSiteByName", new object[] {
                        authUserName,
                        authPassword,
                        SiteName,
                        DeleteFiles}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult1 EndDeleteSiteByName(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public void DeleteSiteByNameAsync(string authUserName, string authPassword, string SiteName, bool DeleteFiles)
        {
            this.DeleteSiteByNameAsync(authUserName, authPassword, SiteName, DeleteFiles, null);
        }

        /// <remarks/>
        public void DeleteSiteByNameAsync(string authUserName, string authPassword, string SiteName, bool DeleteFiles, object userState)
        {
            if ((this.DeleteSiteByNameOperationCompleted == null))
            {
                this.DeleteSiteByNameOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteSiteByNameOperationCompleted);
            }
            this.InvokeAsync("DeleteSiteByName", new object[] {
                        authUserName,
                        authPassword,
                        SiteName,
                        DeleteFiles}, this.DeleteSiteByNameOperationCompleted, userState);
        }

        private void OnDeleteSiteByNameOperationCompleted(object arg)
        {
            if ((this.DeleteSiteByNameCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteSiteByNameCompleted(this, new DeleteSiteByNameCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/GetAllSites", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public SiteInfoArrayResult GetAllSites(string authUserName, string authPassword, bool IncludeDetails)
        {
            object[] results = this.Invoke("GetAllSites", new object[] {
                        authUserName,
                        authPassword,
                        IncludeDetails});
            return ((SiteInfoArrayResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetAllSites(string authUserName, string authPassword, bool IncludeDetails, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetAllSites", new object[] {
                        authUserName,
                        authPassword,
                        IncludeDetails}, callback, asyncState);
        }

        /// <remarks/>
        public SiteInfoArrayResult EndGetAllSites(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((SiteInfoArrayResult)(results[0]));
        }

        /// <remarks/>
        public void GetAllSitesAsync(string authUserName, string authPassword, bool IncludeDetails)
        {
            this.GetAllSitesAsync(authUserName, authPassword, IncludeDetails, null);
        }

        /// <remarks/>
        public void GetAllSitesAsync(string authUserName, string authPassword, bool IncludeDetails, object userState)
        {
            if ((this.GetAllSitesOperationCompleted == null))
            {
                this.GetAllSitesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAllSitesOperationCompleted);
            }
            this.InvokeAsync("GetAllSites", new object[] {
                        authUserName,
                        authPassword,
                        IncludeDetails}, this.GetAllSitesOperationCompleted, userState);
        }

        private void OnGetAllSitesOperationCompleted(object arg)
        {
            if ((this.GetAllSitesCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetAllSitesCompleted(this, new GetAllSitesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/GetSitesForServer", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public SiteInfoArrayResult GetSitesForServer(string authUserName, string authPassword, int ServerID, bool IncludeDetails)
        {
            object[] results = this.Invoke("GetSitesForServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID,
                        IncludeDetails});
            return ((SiteInfoArrayResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetSitesForServer(string authUserName, string authPassword, int ServerID, bool IncludeDetails, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetSitesForServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID,
                        IncludeDetails}, callback, asyncState);
        }

        /// <remarks/>
        public SiteInfoArrayResult EndGetSitesForServer(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((SiteInfoArrayResult)(results[0]));
        }

        /// <remarks/>
        public void GetSitesForServerAsync(string authUserName, string authPassword, int ServerID, bool IncludeDetails)
        {
            this.GetSitesForServerAsync(authUserName, authPassword, ServerID, IncludeDetails, null);
        }

        /// <remarks/>
        public void GetSitesForServerAsync(string authUserName, string authPassword, int ServerID, bool IncludeDetails, object userState)
        {
            if ((this.GetSitesForServerOperationCompleted == null))
            {
                this.GetSitesForServerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSitesForServerOperationCompleted);
            }
            this.InvokeAsync("GetSitesForServer", new object[] {
                        authUserName,
                        authPassword,
                        ServerID,
                        IncludeDetails}, this.GetSitesForServerOperationCompleted, userState);
        }

        private void OnGetSitesForServerOperationCompleted(object arg)
        {
            if ((this.GetSitesForServerCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetSitesForServerCompleted(this, new GetSitesForServerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/GetSite", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public SiteInfoResult GetSite(string authUserName, string authPassword, int SiteID)
        {
            object[] results = this.Invoke("GetSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID});
            return ((SiteInfoResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetSite(string authUserName, string authPassword, int SiteID, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID}, callback, asyncState);
        }

        /// <remarks/>
        public SiteInfoResult EndGetSite(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((SiteInfoResult)(results[0]));
        }

        /// <remarks/>
        public void GetSiteAsync(string authUserName, string authPassword, int SiteID)
        {
            this.GetSiteAsync(authUserName, authPassword, SiteID, null);
        }

        /// <remarks/>
        public void GetSiteAsync(string authUserName, string authPassword, int SiteID, object userState)
        {
            if ((this.GetSiteOperationCompleted == null))
            {
                this.GetSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSiteOperationCompleted);
            }
            this.InvokeAsync("GetSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID}, this.GetSiteOperationCompleted, userState);
        }

        private void OnGetSiteOperationCompleted(object arg)
        {
            if ((this.GetSiteCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetSiteCompleted(this, new GetSiteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/GetSiteStatus", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public SiteInfoResult GetSiteStatus(string authUserName, string authPassword, int SiteID)
        {
            object[] results = this.Invoke("GetSiteStatus", new object[] {
                        authUserName,
                        authPassword,
                        SiteID});
            return ((SiteInfoResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetSiteStatus(string authUserName, string authPassword, int SiteID, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetSiteStatus", new object[] {
                        authUserName,
                        authPassword,
                        SiteID}, callback, asyncState);
        }

        /// <remarks/>
        public SiteInfoResult EndGetSiteStatus(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((SiteInfoResult)(results[0]));
        }

        /// <remarks/>
        public void GetSiteStatusAsync(string authUserName, string authPassword, int SiteID)
        {
            this.GetSiteStatusAsync(authUserName, authPassword, SiteID, null);
        }

        /// <remarks/>
        public void GetSiteStatusAsync(string authUserName, string authPassword, int SiteID, object userState)
        {
            if ((this.GetSiteStatusOperationCompleted == null))
            {
                this.GetSiteStatusOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetSiteStatusOperationCompleted);
            }
            this.InvokeAsync("GetSiteStatus", new object[] {
                        authUserName,
                        authPassword,
                        SiteID}, this.GetSiteStatusOperationCompleted, userState);
        }

        private void OnGetSiteStatusOperationCompleted(object arg)
        {
            if ((this.GetSiteStatusCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetSiteStatusCompleted(this, new GetSiteStatusCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/SiteAdmin.asmx/MoveSite", RequestNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult1 MoveSite(string authUserName, string authPassword, int SiteID, int DestServerID, string DestSmarterLogPath, string DestLogFilePath, string DestExportPath, string DestExportPathURL, bool CopyFiles)
        {
            object[] results = this.Invoke("MoveSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        DestServerID,
                        DestSmarterLogPath,
                        DestLogFilePath,
                        DestExportPath,
                        DestExportPathURL,
                        CopyFiles});
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginMoveSite(string authUserName, string authPassword, int SiteID, int DestServerID, string DestSmarterLogPath, string DestLogFilePath, string DestExportPath, string DestExportPathURL, bool CopyFiles, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("MoveSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        DestServerID,
                        DestSmarterLogPath,
                        DestLogFilePath,
                        DestExportPath,
                        DestExportPathURL,
                        CopyFiles}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult1 EndMoveSite(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult1)(results[0]));
        }

        /// <remarks/>
        public void MoveSiteAsync(string authUserName, string authPassword, int SiteID, int DestServerID, string DestSmarterLogPath, string DestLogFilePath, string DestExportPath, string DestExportPathURL, bool CopyFiles)
        {
            this.MoveSiteAsync(authUserName, authPassword, SiteID, DestServerID, DestSmarterLogPath, DestLogFilePath, DestExportPath, DestExportPathURL, CopyFiles, null);
        }

        /// <remarks/>
        public void MoveSiteAsync(string authUserName, string authPassword, int SiteID, int DestServerID, string DestSmarterLogPath, string DestLogFilePath, string DestExportPath, string DestExportPathURL, bool CopyFiles, object userState)
        {
            if ((this.MoveSiteOperationCompleted == null))
            {
                this.MoveSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnMoveSiteOperationCompleted);
            }
            this.InvokeAsync("MoveSite", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        DestServerID,
                        DestSmarterLogPath,
                        DestLogFilePath,
                        DestExportPath,
                        DestExportPathURL,
                        CopyFiles}, this.MoveSiteOperationCompleted, userState);
        }

        private void OnMoveSiteOperationCompleted(object arg)
        {
            if ((this.MoveSiteCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.MoveSiteCompleted(this, new MoveSiteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        public new void CancelAsync(object userState)
        {
            base.CancelAsync(userState);
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(TypeName = "GenericResult", Namespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx")]
    public partial class GenericResult1
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx")]
    public partial class SiteInfoResult
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;

        /// <remarks/>
        public SiteInfo Site;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx")]
    public partial class SiteInfo
    {

        /// <remarks/>
        public int ServerID;

        /// <remarks/>
        public int SiteID;

        /// <remarks/>
        public string DomainName;

        /// <remarks/>
        public string LogDirectory;

        /// <remarks/>
        public string LogFormat;

        /// <remarks/>
        public string LogWildcard;

        /// <remarks/>
        public int LogDaysBeforeDelete;

        /// <remarks/>
        public string SmarterLogDirectory;

        /// <remarks/>
        public int SmarterLogMonthsBeforeDelete;

        /// <remarks/>
        public string ExportPath;

        /// <remarks/>
        public string ExportPathURL;

        /// <remarks/>
        public int TimeZoneID;

        /// <remarks/>
        public string SiteStatus;

        /// <remarks/>
        public bool ftp_Enabled;

        /// <remarks/>
        public string ftp_Server;

        /// <remarks/>
        public int ftp_port;

        /// <remarks/>
        public string ftp_Username;

        /// <remarks/>
        public string ftp_Password;

        /// <remarks/>
        public int ftp_Interval;

        /// <remarks/>
        public string ftp_Directory;

        /// <remarks/>
        public string ftp_ProxyType;

        /// <remarks/>
        public string ftp_ProxyAddress;

        /// <remarks/>
        public int ftp_ProxyPort;

        /// <remarks/>
        public string ftp_ProxyUsername;

        /// <remarks/>
        public string ftp_ProxyPassword;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/SiteAdmin.asmx")]
    public partial class SiteInfoArrayResult
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable = false)]
        public SiteInfo[] Sites;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddSiteCompletedEventHandler(object sender, AddSiteCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddSiteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddSiteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult1 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult1)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddSiteWithFTPCompletedEventHandler(object sender, AddSiteWithFTPCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddSiteWithFTPCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddSiteWithFTPCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult1 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult1)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateSiteCompletedEventHandler(object sender, UpdateSiteCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateSiteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal UpdateSiteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult1 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult1)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteSiteCompletedEventHandler(object sender, DeleteSiteCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteSiteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteSiteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult1 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult1)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteSiteByNameCompletedEventHandler(object sender, DeleteSiteByNameCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteSiteByNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteSiteByNameCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult1 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult1)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetAllSitesCompletedEventHandler(object sender, GetAllSitesCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetAllSitesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetAllSitesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public SiteInfoArrayResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((SiteInfoArrayResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetSitesForServerCompletedEventHandler(object sender, GetSitesForServerCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetSitesForServerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetSitesForServerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public SiteInfoArrayResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((SiteInfoArrayResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetSiteCompletedEventHandler(object sender, GetSiteCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetSiteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetSiteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public SiteInfoResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((SiteInfoResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetSiteStatusCompletedEventHandler(object sender, GetSiteStatusCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetSiteStatusCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetSiteStatusCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public SiteInfoResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((SiteInfoResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void MoveSiteCompletedEventHandler(object sender, MoveSiteCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class MoveSiteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal MoveSiteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult1 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult1)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name = "UserAdminSoap", Namespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx")]
    public partial class UserAdmin : System.Web.Services.Protocols.SoapHttpClientProtocol
    {

        private System.Threading.SendOrPostCallback AddUserOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateUserOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteUserOperationCompleted;

        private System.Threading.SendOrPostCallback GetUserOperationCompleted;

        private System.Threading.SendOrPostCallback GetUsersOperationCompleted;

        private System.Threading.SendOrPostCallback SetSiteOwnerOperationCompleted;

        private System.Threading.SendOrPostCallback ValidateLoginOperationCompleted;

        /// <remarks/>
        public UserAdmin()
        {
            this.Url = "http://127.0.0.1:9999/services/useradmin.asmx";
        }

        /// <remarks/>
        public event AddUserCompletedEventHandler AddUserCompleted;

        /// <remarks/>
        public event UpdateUserCompletedEventHandler UpdateUserCompleted;

        /// <remarks/>
        public event DeleteUserCompletedEventHandler DeleteUserCompleted;

        /// <remarks/>
        public event GetUserCompletedEventHandler GetUserCompleted;

        /// <remarks/>
        public event GetUsersCompletedEventHandler GetUsersCompleted;

        /// <remarks/>
        public event SetSiteOwnerCompletedEventHandler SetSiteOwnerCompleted;

        /// <remarks/>
        public event ValidateLoginCompletedEventHandler ValidateLoginCompleted;

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/UserAdmin.asmx/AddUser", RequestNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult2 AddUser(string authUserName, string authPassword, int SiteID, string UserName, string Password, string FirstName, string LastName, bool IsAdmin)
        {
            object[] results = this.Invoke("AddUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName,
                        Password,
                        FirstName,
                        LastName,
                        IsAdmin});
            return ((GenericResult2)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddUser(string authUserName, string authPassword, int SiteID, string UserName, string Password, string FirstName, string LastName, bool IsAdmin, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AddUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName,
                        Password,
                        FirstName,
                        LastName,
                        IsAdmin}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult2 EndAddUser(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult2)(results[0]));
        }

        /// <remarks/>
        public void AddUserAsync(string authUserName, string authPassword, int SiteID, string UserName, string Password, string FirstName, string LastName, bool IsAdmin)
        {
            this.AddUserAsync(authUserName, authPassword, SiteID, UserName, Password, FirstName, LastName, IsAdmin, null);
        }

        /// <remarks/>
        public void AddUserAsync(string authUserName, string authPassword, int SiteID, string UserName, string Password, string FirstName, string LastName, bool IsAdmin, object userState)
        {
            if ((this.AddUserOperationCompleted == null))
            {
                this.AddUserOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddUserOperationCompleted);
            }
            this.InvokeAsync("AddUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName,
                        Password,
                        FirstName,
                        LastName,
                        IsAdmin}, this.AddUserOperationCompleted, userState);
        }

        private void OnAddUserOperationCompleted(object arg)
        {
            if ((this.AddUserCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddUserCompleted(this, new AddUserCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/UserAdmin.asmx/UpdateUser", RequestNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult2 UpdateUser(string authUserName, string authPassword, int SiteID, string UserName, string Password, string FirstName, string LastName, bool IsAdmin)
        {
            object[] results = this.Invoke("UpdateUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName,
                        Password,
                        FirstName,
                        LastName,
                        IsAdmin});
            return ((GenericResult2)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateUser(string authUserName, string authPassword, int SiteID, string UserName, string Password, string FirstName, string LastName, bool IsAdmin, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName,
                        Password,
                        FirstName,
                        LastName,
                        IsAdmin}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult2 EndUpdateUser(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult2)(results[0]));
        }

        /// <remarks/>
        public void UpdateUserAsync(string authUserName, string authPassword, int SiteID, string UserName, string Password, string FirstName, string LastName, bool IsAdmin)
        {
            this.UpdateUserAsync(authUserName, authPassword, SiteID, UserName, Password, FirstName, LastName, IsAdmin, null);
        }

        /// <remarks/>
        public void UpdateUserAsync(string authUserName, string authPassword, int SiteID, string UserName, string Password, string FirstName, string LastName, bool IsAdmin, object userState)
        {
            if ((this.UpdateUserOperationCompleted == null))
            {
                this.UpdateUserOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateUserOperationCompleted);
            }
            this.InvokeAsync("UpdateUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName,
                        Password,
                        FirstName,
                        LastName,
                        IsAdmin}, this.UpdateUserOperationCompleted, userState);
        }

        private void OnUpdateUserOperationCompleted(object arg)
        {
            if ((this.UpdateUserCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateUserCompleted(this, new UpdateUserCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/UserAdmin.asmx/DeleteUser", RequestNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult2 DeleteUser(string authUserName, string authPassword, int SiteID, string UserName)
        {
            object[] results = this.Invoke("DeleteUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName});
            return ((GenericResult2)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteUser(string authUserName, string authPassword, int SiteID, string UserName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult2 EndDeleteUser(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult2)(results[0]));
        }

        /// <remarks/>
        public void DeleteUserAsync(string authUserName, string authPassword, int SiteID, string UserName)
        {
            this.DeleteUserAsync(authUserName, authPassword, SiteID, UserName, null);
        }

        /// <remarks/>
        public void DeleteUserAsync(string authUserName, string authPassword, int SiteID, string UserName, object userState)
        {
            if ((this.DeleteUserOperationCompleted == null))
            {
                this.DeleteUserOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteUserOperationCompleted);
            }
            this.InvokeAsync("DeleteUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName}, this.DeleteUserOperationCompleted, userState);
        }

        private void OnDeleteUserOperationCompleted(object arg)
        {
            if ((this.DeleteUserCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteUserCompleted(this, new DeleteUserCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/UserAdmin.asmx/GetUser", RequestNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public UserInfoResult GetUser(string authUserName, string authPassword, int SiteID, string UserName)
        {
            object[] results = this.Invoke("GetUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName});
            return ((UserInfoResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetUser(string authUserName, string authPassword, int SiteID, string UserName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName}, callback, asyncState);
        }

        /// <remarks/>
        public UserInfoResult EndGetUser(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((UserInfoResult)(results[0]));
        }

        /// <remarks/>
        public void GetUserAsync(string authUserName, string authPassword, int SiteID, string UserName)
        {
            this.GetUserAsync(authUserName, authPassword, SiteID, UserName, null);
        }

        /// <remarks/>
        public void GetUserAsync(string authUserName, string authPassword, int SiteID, string UserName, object userState)
        {
            if ((this.GetUserOperationCompleted == null))
            {
                this.GetUserOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetUserOperationCompleted);
            }
            this.InvokeAsync("GetUser", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName}, this.GetUserOperationCompleted, userState);
        }

        private void OnGetUserOperationCompleted(object arg)
        {
            if ((this.GetUserCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetUserCompleted(this, new GetUserCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/UserAdmin.asmx/GetUsers", RequestNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public UserInfoResultArray GetUsers(string authUserName, string authPassword, int SiteID)
        {
            object[] results = this.Invoke("GetUsers", new object[] {
                        authUserName,
                        authPassword,
                        SiteID});
            return ((UserInfoResultArray)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetUsers(string authUserName, string authPassword, int SiteID, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetUsers", new object[] {
                        authUserName,
                        authPassword,
                        SiteID}, callback, asyncState);
        }

        /// <remarks/>
        public UserInfoResultArray EndGetUsers(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((UserInfoResultArray)(results[0]));
        }

        /// <remarks/>
        public void GetUsersAsync(string authUserName, string authPassword, int SiteID)
        {
            this.GetUsersAsync(authUserName, authPassword, SiteID, null);
        }

        /// <remarks/>
        public void GetUsersAsync(string authUserName, string authPassword, int SiteID, object userState)
        {
            if ((this.GetUsersOperationCompleted == null))
            {
                this.GetUsersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetUsersOperationCompleted);
            }
            this.InvokeAsync("GetUsers", new object[] {
                        authUserName,
                        authPassword,
                        SiteID}, this.GetUsersOperationCompleted, userState);
        }

        private void OnGetUsersOperationCompleted(object arg)
        {
            if ((this.GetUsersCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetUsersCompleted(this, new GetUsersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/UserAdmin.asmx/SetSiteOwner", RequestNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public GenericResult2 SetSiteOwner(string authUserName, string authPassword, int SiteID, string UserName)
        {
            object[] results = this.Invoke("SetSiteOwner", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName});
            return ((GenericResult2)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginSetSiteOwner(string authUserName, string authPassword, int SiteID, string UserName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("SetSiteOwner", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName}, callback, asyncState);
        }

        /// <remarks/>
        public GenericResult2 EndSetSiteOwner(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((GenericResult2)(results[0]));
        }

        /// <remarks/>
        public void SetSiteOwnerAsync(string authUserName, string authPassword, int SiteID, string UserName)
        {
            this.SetSiteOwnerAsync(authUserName, authPassword, SiteID, UserName, null);
        }

        /// <remarks/>
        public void SetSiteOwnerAsync(string authUserName, string authPassword, int SiteID, string UserName, object userState)
        {
            if ((this.SetSiteOwnerOperationCompleted == null))
            {
                this.SetSiteOwnerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSetSiteOwnerOperationCompleted);
            }
            this.InvokeAsync("SetSiteOwner", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName}, this.SetSiteOwnerOperationCompleted, userState);
        }

        private void OnSetSiteOwnerOperationCompleted(object arg)
        {
            if ((this.SetSiteOwnerCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.SetSiteOwnerCompleted(this, new SetSiteOwnerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.smartertools.com/smarterstats/UserAdmin.asmx/ValidateLogin", RequestNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", ResponseNamespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public LoginResult ValidateLogin(string authUserName, string authPassword, int SiteID, string UserName, string Password)
        {
            object[] results = this.Invoke("ValidateLogin", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName,
                        Password});
            return ((LoginResult)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginValidateLogin(string authUserName, string authPassword, int SiteID, string UserName, string Password, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("ValidateLogin", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName,
                        Password}, callback, asyncState);
        }

        /// <remarks/>
        public LoginResult EndValidateLogin(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((LoginResult)(results[0]));
        }

        /// <remarks/>
        public void ValidateLoginAsync(string authUserName, string authPassword, int SiteID, string UserName, string Password)
        {
            this.ValidateLoginAsync(authUserName, authPassword, SiteID, UserName, Password, null);
        }

        /// <remarks/>
        public void ValidateLoginAsync(string authUserName, string authPassword, int SiteID, string UserName, string Password, object userState)
        {
            if ((this.ValidateLoginOperationCompleted == null))
            {
                this.ValidateLoginOperationCompleted = new System.Threading.SendOrPostCallback(this.OnValidateLoginOperationCompleted);
            }
            this.InvokeAsync("ValidateLogin", new object[] {
                        authUserName,
                        authPassword,
                        SiteID,
                        UserName,
                        Password}, this.ValidateLoginOperationCompleted, userState);
        }

        private void OnValidateLoginOperationCompleted(object arg)
        {
            if ((this.ValidateLoginCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.ValidateLoginCompleted(this, new ValidateLoginCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        public new void CancelAsync(object userState)
        {
            base.CancelAsync(userState);
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(TypeName = "GenericResult", Namespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx")]
    public partial class GenericResult2
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx")]
    public partial class LoginResult
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx")]
    public partial class UserInfoResultArray
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute(IsNullable = false)]
        public UserInfo[] user;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx")]
    public partial class UserInfo
    {

        /// <remarks/>
        public int SiteID;

        /// <remarks/>
        public string UserName;

        /// <remarks/>
        public string Password;

        /// <remarks/>
        public string FirstName;

        /// <remarks/>
        public string LastName;

        /// <remarks/>
        public bool IsAdmin;

        /// <remarks/>
        public bool IsSiteOwner;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.smartertools.com/smarterstats/UserAdmin.asmx")]
    public partial class UserInfoResult
    {

        /// <remarks/>
        public bool Result;

        /// <remarks/>
        public int ResultCode;

        /// <remarks/>
        public string Message;

        /// <remarks/>
        public UserInfo user;
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddUserCompletedEventHandler(object sender, AddUserCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AddUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AddUserCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult2 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult2)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateUserCompletedEventHandler(object sender, UpdateUserCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal UpdateUserCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult2 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult2)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteUserCompletedEventHandler(object sender, DeleteUserCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DeleteUserCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult2 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult2)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetUserCompletedEventHandler(object sender, GetUserCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetUserCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetUserCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public UserInfoResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((UserInfoResult)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetUsersCompletedEventHandler(object sender, GetUsersCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetUsersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetUsersCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public UserInfoResultArray Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((UserInfoResultArray)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void SetSiteOwnerCompletedEventHandler(object sender, SetSiteOwnerCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class SetSiteOwnerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal SetSiteOwnerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public GenericResult2 Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((GenericResult2)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void ValidateLoginCompletedEventHandler(object sender, ValidateLoginCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class ValidateLoginCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal ValidateLoginCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public LoginResult Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((LoginResult)(this.results[0]));
            }
        }
    }
}
